import React, { FC, useReducer } from 'react'

type StateType = { count: number }
type ActionType = { type: string }
const initialState: StateType = { count: 100 }
function reducer(state: StateType, action: ActionType) {
  switch (action.type) {
    case 'increment':
      return { count: state.count + 1 }
    case 'decrement':
      return { count: state.count - 1 }

    default:
      throw new Error('报错')
  }
}

const CountReducer: FC = () => {
  const [state, dispatch] = useReducer(reducer, initialState)

  return (
    <>
      <p> {state.count}</p>
      <button
        onClick={() => {
          dispatch({ type: 'increment' })
        }}
      >
        +1
      </button>
      <button
        onClick={() => {
          dispatch({ type: 'decrement' })
        }}
      >
        -1
      </button>
    </>
  )
}
export default CountReducer
